/*
 * Jenny Ruppen 09-730-391
 * Sebastien Goldberg 08-914-855
 * Henry Raymond 08-928-061
 * Stefan Mussato 09-752-270
 */
 
package ch.uzh.ifi.sopra.gruppe9.game;

import java.rmi.RemoteException;
import java.util.ArrayList;


public interface IPlayer {
	
	void setName(String name) throws RemoteException;

	String getName() throws RemoteException;

	void setColor(int color) throws RemoteException;
	
	int getColor() throws RemoteException;
	
	void addPoints(int points);
	
	int getPoints() throws RemoteException;
	
	void setReady(boolean ready) throws RemoteException;

	boolean isReady() throws RemoteException;
	
	void recieveMoney(int amount);
	
	void payMoney(int amount);
	
	boolean checkMoney(int amount) throws RemoteException;
	
	int getMoneyBalance() throws RemoteException;

	int[] getBuyingAgentIDs() throws RemoteException;
	
	boolean removeBuyingAgent(int id);
	
	int[] getInventoryIDs() throws RemoteException;
	
	void addElementToInventory(TowerElement element);
	
	boolean removeElementFromInventory(int elementId);
	
	void addBuyingAgent(BuyingAgent buyingAgent);
	
	boolean usedAllBuyingAgents();
	
	void endOfSeason();
	
	String getTowerInstructions() throws RemoteException;
	
	ArrayList<Tower> getTowers();
}
